In some contexts, programmers desire to index and search across multiple arrays, such as may be stored in different arrays and that may be previously sorted themselves. For example, in the context of providing for autocompletion of statements as described more fully in the applications incorporated by reference, a program may have to display a list box of a given number of sorted elements from all the elements of the different arrays, beginning at a desired position within a global array encompassing all the different arrays.
Within the prior art, the solution to this problem is usually to first create a global array encompassing all the different arrays, and then sorting this array. However, this is a time-consuming process. For example, where each of the different arrays making up the global array consist of hundreds or thousands of elements, the amount of time to construct the sorted global array is great. In the context of providing a list box of a subset of sorted elements of the global array (for example, ten or fifteen such elements) so that the user is able to choose one of the elements, the delay in first creating the global array is significant, such that it is noticed by the user. This makes the use of the list box in picking one of the elements less convenient for the user.
Furthermore, a virtual global array can actually be created, such that indexing thereon is much more easily performed, when the individual arrays do not themselves dynamically change. However, in certain situations, the contents of these arrays are constantly changing. One array, for example, may have a list of members of a current class, while another array may have a list of members of a current function--where the current class and function change, therefore, the contents of the arrays change, too. Other situations in which changing arrays exist include computer games and telephone directories, etc.
There is a need, therefore, for faster searching and indexing across multiple lists.